package com.fh.service.penalty_interest_reduction;

import java.math.BigDecimal;
import java.util.List;

import com.fh.model.Page;
import com.fh.model.loan.CallLoanInfo;
import com.fh.model.loan.ReducteOverdueInfo;
import com.fh.util.PageData;
/**
 * 罚息减免申请
 * 
 * @author yc
 *
 */
public interface IReducteOverdueInfoService {
	int insert(ReducteOverdueInfo info);
	int insert2(ReducteOverdueInfo info);
	/**
	 * 罚息减免待审核列表
	 * 
	 * @param page
	 * @return
	 */
	List<PageData> findlistPage(Page page);
	/**
	 * 单笔审核页面
	 * 
	 * @param reduApplyId
	 * @return
	 */
	PageData queryByReduApplyId(String reduApplyId);
	/**
	 * 单笔审核
	 * 
	 * @param info
	 * @throws Exception 
	 */
	void auditOne(ReducteOverdueInfo info) throws Exception;
	/**
	 * 批量审核
	 * 
	 * @param dATA_IDS
	 * @param auditStatus
	 * @param verifyRemark
	 * @throws Exception 
	 */
	void updateAuditBatchSave(String DATA_IDS, int auditStatus, String verifyRemark) throws Exception;
	/**
	 * 审核状态查询
	 * 
	 * @param page
	 * @return
	 */
	List<PageData> reduStatuslistPage(Page page);
	
	/**
	 * 定时更新罚息减免的状态值
	 * @param info
	 */
	void updateReduStatusByReduApplyId(ReducteOverdueInfo info);
	
	ReducteOverdueInfo queryByReduApplyIdAudit(String reduApplyId);
	
	void updateReduStatusByJob();
	
	/**
	 * 通过催收编号查询案件信息
	 */
	CallLoanInfo queryByCallLoanNid(String callLoanNid);
	/**
	 * 更新罚息减免金额
	 * 
	 * @param callLoanInfo
	 * @param reduOverdueFee
	 */
	void updateReduMoney(CallLoanInfo callLoanInfo, BigDecimal reduOverdueFee);
	
	int updateReturnFeeStatus(String order_no, Integer status);
	
	//修改主表的罚息退回金额
	int updateReturnFeeMoney(String reduApplyId);
	
}
